﻿using System;
using System.Collections.Generic;

namespace Sinacor.Servico.Bovespa.Cliente.Service.ServiceImplementation.Translator.DataContractToBusinessEntity
{
    /// <summary>
    /// Translator.DataContractToBusinessEntity Class - DicionarioErroExportacaoComitente
    /// </summary>
    public class DicionarioErroExportacaoComitente
    {
        #region ToErroExportacaoComitente

        /// <summary>
        /// Traduzir um contrato de dados do tipo ErroExportacaoComitenteRequest para uma entidade de negócio ErroExportacaoComitente
        /// </summary>
        /// <param name="from">Contrato de dados ErroExportacaoComitenteRequest</param>
        /// <returns>Entidade de negócio ErroExportacaoComitente</returns>
        public BusinessEntity.ErroExportacaoComitente ToErroExportacaoComitente(DataContract.Request.ErroExportacaoComitenteRequest from)
        {
            BusinessEntity.ErroExportacaoComitente to = new BusinessEntity.ErroExportacaoComitente();

            to.Codigo = from.Codigo;
            to.Descricao = from.Descricao;
            
            return to;   
        }

        /// <summary>
        /// Traduzir uma lista de contratos de dados do tipo ErroExportacaoComitenteRequest para uma lista de entidades de negócio ErroExportacaoComitente
        /// </summary>
        /// <param name="from">Lista de contratos de dados ErroExportacaoComitenteRequest</param>
        /// <returns>Lista de entidades ErroExportacaoComitente</returns>
        public List<BusinessEntity.ErroExportacaoComitente> ToErroExportacaoComitente(List<DataContract.Request.ErroExportacaoComitenteRequest> from)
        {
            List<BusinessEntity.ErroExportacaoComitente> to = new List<BusinessEntity.ErroExportacaoComitente>();
            foreach (DataContract.Request.ErroExportacaoComitenteRequest itemFrom in from)
            {
                to.Add(this.ToErroExportacaoComitente(itemFrom));
            }

            return to;
        }

        #endregion

        #region ToFiltroErroExportacaoComitente

        /// <summary>
        /// Traduzir um contrato de dados do tipo FiltroErroExportacaoComitenteRequest para uma entidade de negócio FiltroErroExportacaoComitente
        /// </summary>
        /// <param name="from">Contrato de dados FiltroErroExportacaoComitenteRequest</param>
        /// <returns>Entidade de negócio FiltroErroExportacaoComitente</returns>
        public BusinessEntity.Parameter.FiltroErroExportacaoComitente ToFiltroErroExportacaoComitente(DataContract.Request.FiltroErroExportacaoComitenteRequest from)
        {
            if (from == null) return null;

            BusinessEntity.Parameter.FiltroErroExportacaoComitente to = new BusinessEntity.Parameter.FiltroErroExportacaoComitente();

            to.Codigo = from.Codigo;
            to.Descricao = from.Descricao;

            return to;
        }

        /// <summary>
        /// Traduzir uma lista de contratos de dados do tipo FiltroErroExportacaoComitenteRequest para uma lista de entidades de negócio FiltroErroExportacaoComitente
        /// </summary>
        /// <param name="from">Lista de contratos de dados FiltroErroExportacaoComitenteRequest</param>
        /// <returns>Lista de entidades FiltroErroExportacaoComitente</returns>
        public List<BusinessEntity.Parameter.FiltroErroExportacaoComitente> ToFiltroErroExportacaoComitente(List<DataContract.Request.FiltroErroExportacaoComitenteRequest> from)
        {
            List<BusinessEntity.Parameter.FiltroErroExportacaoComitente> to = new List<BusinessEntity.Parameter.FiltroErroExportacaoComitente>();
            foreach (DataContract.Request.FiltroErroExportacaoComitenteRequest itemFrom in from)
            {
                to.Add(this.ToFiltroErroExportacaoComitente(itemFrom));
            }

            return to;
        }

        #endregion

        #region ToFiltroErroExportacaoComitenteChave

        /// <summary>
        /// Traduzir um contrato de dados do tipo FiltroErroExportacaoComitenteChaveRequest para uma entidade de negócio FiltroErroExportacaoComitenteChave
        /// </summary>
        /// <param name="from">Contrato de dados FiltroErroExportacaoComitenteChaveRequest</param>
        /// <returns>Entidade de negócio FiltroErroExportacaoComitenteChave</returns>
        public BusinessEntity.Parameter.FiltroErroExportacaoComitenteChave ToFiltroErroExportacaoComitenteChave(DataContract.Request.FiltroErroExportacaoComitenteChaveRequest from)
        {
            BusinessEntity.Parameter.FiltroErroExportacaoComitenteChave to = new BusinessEntity.Parameter.FiltroErroExportacaoComitenteChave();

            to.Codigo = from.Codigo;

            return to;
        }

        /// <summary>
        /// Traduzir uma lista de contratos de dados do tipo FiltroErroExportacaoComitenteChaveRequest para uma lista de entidades de negócio FiltroErroExportacaoComitenteChave
        /// </summary>
        /// <param name="from">Lista de contratos de dados FiltroErroExportacaoComitenteChaveRequest</param>
        /// <returns>Lista de entidades FiltroErroExportacaoComitenteChave</returns>
        public List<BusinessEntity.Parameter.FiltroErroExportacaoComitenteChave> ToFiltroErroExportacaoComitenteChave(List<DataContract.Request.FiltroErroExportacaoComitenteChaveRequest> from)
        {
            List<BusinessEntity.Parameter.FiltroErroExportacaoComitenteChave> to = new List<BusinessEntity.Parameter.FiltroErroExportacaoComitenteChave>();
            foreach (DataContract.Request.FiltroErroExportacaoComitenteChaveRequest itemFrom in from)
            {
                to.Add(this.ToFiltroErroExportacaoComitenteChave(itemFrom));
            }

            return to;
        }

        #endregion
    }
}
